package com.handler;

import com.Week;
import org.apache.ibatis.type.BaseTypeHandler;
import org.apache.ibatis.type.JdbcType;

import java.sql.CallableStatement;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
//类型处理器 （ typeHandlers ）
//在Mybatis 中， 如何将一个 JDBC 类型转成一个 Java类型 ； 其实是通过 对应的 类型处理器。
//在Mybatis 中，内置了很多常用的类型处理器 ，比如 StringTypeHandler 可以将 JDBC 类型中的char、varchar 转成 Java 类型中的String
public class WeekTypeHandler extends BaseTypeHandler<Week> {
    @Override
    public void setNonNullParameter(PreparedStatement preparedStatement, int i, Week week, JdbcType jdbcType) throws SQLException {
        preparedStatement.setObject(i,week);
    }

    @Override
    public Week getNullableResult(ResultSet resultSet, String s) throws SQLException {
        return (Week) resultSet.getObject(s);
    }

    @Override
    public Week getNullableResult(ResultSet resultSet, int i) throws SQLException {
        return (Week) resultSet.getObject(i);
    }

    @Override
    public Week getNullableResult(CallableStatement callableStatement, int i) throws SQLException {
        return callableStatement.getObject(i,Week.class);
    }
}
